#pragma once
//============================================================================
// Copyright (C) 2009-2013 Brett R. Jones 
// All Rights Reserved
//
// You may redistribute and/or modify for non commercial and commercial uses 
// provided this copyright notice remains in place and is not modified
//
// This code is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
//
// brettjones1900@gmail.com
// http://www.p2panarchy.com
//============================================================================
class RcSysRxPktAnnEvent
{
public:
	//=== constructor ===//
	RcSysRxPktAnnEvent();
	//=== constructor ===//
	RcSysRxPktAnnEvent( RcSysPktAnnounce * poPktAnn, U32 u32BigListFlags );

	//=== destructor ===//
	virtual ~RcSysRxPktAnnEvent();

	//=== methods ===//


	//=== vars ===//
	RcSysPktAnnounce *		m_poPktAnn;
	U32						m_u32BigListFlags;
};

class RcSysRxPktAnnQue 
{
public:
	//=== constructor ===//
	RcSysRxPktAnnQue();
	//=== destructor ===//
	virtual ~RcSysRxPktAnnQue();

	//=== methods ===//
	//! add event to que
	void			AddRxPktAnnEvent( RcSysRxPktAnnEvent * poEvent );
	//! remove event from que.. returns null if no events avalil
	RcSysRxPktAnnEvent *	RemoveRxPktAnnEvent(  void );

	//=== vars ===//
	VxMutex								m_oRxPktAnnEventMutex;
	std::vector<RcSysRxPktAnnEvent*>	m_aoRxPktAnnEvents;
};



